package com.google.code.swingonfire.component.page;

import java.awt.Component;

/**
 * <p>
 * A container, that holds multiple components. Each component has an index and can be selected. Each components fills
 * the whole container. The transition between components is animated. The components can be initialized lazy (or late),
 * if a component provider is defined. The index of components may span from Integer.MIN_VALUE to Integer.MAX_VALUE.
 * </p>
 * <p>
 * You can either use the container like other AWT/Swing containers: add components to render them. Or you can define a
 * {@link JPagePaneComponentProvider} which provides the component for a specified index. This can be used if the
 * component count is very large and the components are created automatically (like the pages of a calendar). The
 * container will cache some of the components and drop the ones not used for a while, if the count exceeds the
 * component cache size (like an LRU-Cache).
 * </p>
 * 
 * @author thred
 */
public class JPagePane extends AbstractJPageComponent
{

    private static final long serialVersionUID = 7151637043259152248L;

    public JPagePane()
    {
        super();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int indexOf(String name)
    {
        return super.indexOf(name);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int indexOf(Component component)
    {
        return super.indexOf(component);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public JPagePaneComponentProvider getComponentProvider()
    {
        return super.getComponentProvider();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setComponentProvider(JPagePaneComponentProvider componentProvider)
    {
        super.setComponentProvider(componentProvider);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int getComponentCacheSize()
    {
        return super.getComponentCacheSize();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setComponentCacheSize(int componentCacheSize)
    {
        super.setComponentCacheSize(componentCacheSize);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int getMinimumComponentIndex()
    {
        return super.getMinimumComponentIndex();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setMinimumComponentIndex(int minimumComponentIndex)
    {
        super.setMinimumComponentIndex(minimumComponentIndex);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int getMaximumComponentIndex()
    {
        return super.getMaximumComponentIndex();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setMaximumComponentIndex(int maximumComponentIndex)
    {
        super.setMaximumComponentIndex(maximumComponentIndex);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setComponentIndexRange(int minimumComponentIndex, int maximumComponentIndex)
    {
        super.setComponentIndexRange(minimumComponentIndex, maximumComponentIndex);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Integer getSelectedComponentIndex()
    {
        return super.getSelectedComponentIndex();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setSelectedComponentIndex(Integer selectedComponentIndex)
    {
        super.setSelectedComponentIndex(selectedComponentIndex);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setSelectedComponentIndex(Integer selectedComponentIndex, boolean animationEnabled)
    {
        super.setSelectedComponentIndex(selectedComponentIndex, animationEnabled);
    }

}
